package com.cloud.async.monitor;

import com.cloud.async.result.core.body.ResultBody;

/**
 * @author february@chengr
 * @date 2025/7/27
 * @description 用于监控异步任务的生命周期（如任务开始、完成、失败等）。
 * @className ErrorHandler
 */
public interface ResultHandlerMonitor {

    /**
     * 任务开始执行
     *
     * @param taskId 任务ID
     */
    void onTaskStart(String taskId);

    /**
     * 任务成功完成
     *
     * @param taskId 任务ID
     * @param result 返回结果（可能为null）
     */
    <T> void onTaskComplete(String taskId, ResultBody<T> result);

    /**
     * 任务执行失败
     *
     * @param taskId 任务ID
     * @param e      异常信息
     */
    void onTaskFailed(String taskId, Exception e);


}
